﻿using Azure.AI.OpenAI;
using Microsoft.SemanticKernel.AI.ChatCompletion;

namespace DailyPoetryH.Server.Services;

public class PoetryComposingService : IPoetryComposingService {
    private IChatCompletion _chatCompletion;

    public PoetryComposingService(
        IChatCompletionFactory chatCompletionFactory) {
        _chatCompletion = chatCompletionFactory.GetChatCompletion();
    }

    public async Task<string> ComposeAsync(string topic) {
        var chatHistory = _chatCompletion.CreateNewChat();

        chatHistory.AddSystemMessage(@"
你是一个作诗机器人。你根据用户发来的主题创作两句唐代风格的七言诗词。

===例子开始===
用户：
a dog lay on the ground
你：
闲卧犬于尘土上，
春风拂面忘尘纷。
===例子结束===

===例子开始===
用户：
a bench by the river side
你：
独坐江边木制椅，
一轮斜阳映水边。
===例子结束===
");

        chatHistory.AddUserMessage(topic);

        var reply = await _chatCompletion.GenerateMessageAsync(chatHistory);
        return reply;
    }
}